package conf

import (
	"errors"

	"github.com/spf13/viper"
)

type C struct {
	ConfigName string // 配置文件的文件名
	ConfigType string // 扩展名
	ConfigPath string // 配置文件所在路径
}

// Read 读取配置文件
// data 配置文件内容
func (c *C) Read(data any) error {
	if c.ConfigName == "" || c.ConfigType == "" || c.ConfigPath == "" {
		return errors.New("配置文件信息错误，读取失败")
	}

	viper.SetConfigName(c.ConfigName)
	viper.SetConfigType(c.ConfigType)
	viper.AddConfigPath(c.ConfigPath)

	err := viper.ReadInConfig()
	if err != nil {
		return err
	}

	err = viper.Unmarshal(data)
	return err
}
